package com.briup.facade.service;

import com.briup.model.entity.Training;
import com.briup.model.entity.TrainingLabel;
import com.briup.model.entity.extend.TrainingVo;

import java.util.List;

public interface IFascadeTrainingService {
    /*
     * 添加训练信息
     * @Param [training] 由mock填充的完整训练数据
     * @return java.lang.Integer 返回主键回填id,需要给训练分类等表使用
     **/
    Integer insertTraining(Training training);
    /*
     * 添加训练使用的分类信息
     * @Param [trainingId: 训练id, trainingLabelList: 分类名称数据集]
     **/
    void insertTrainingLabel(Integer trainingId, List<TrainingLabel> trainingLabelList);
    /*
     * 维护训练和数据集的关系(多对多)
     * @Param [trainingId: 训练id, datasetIdList: 数据集id]
     * @return void
     **/
    void insertTrainingDataset(Integer trainingId, List<Integer> datasetIdList);

    /*
     * 提交模型训练任务
     * @Param [trainingVo: 模型训练需要的参数, modelId: 模型id]
     **/
    void trainingModel(TrainingVo trainingVo, Integer modelId);
    /*
     * 从zookeeper中删除该训练节点,并修改模型状态
     * @Param [modelId: 模型id]
     **/
    void cancelTraining(Integer modelId);
}
